# [钛妹]:听说Python的map函数像魔法一样？它和普通循环到底谁更高效呢？

# 基础用法：给每个数字施加平方魔法
数字列表 = [1, 2, 3, 4, 5]
普通循环结果 = [x**2 for x in 数字列表]
print("传统方法:", 普通循环结果)

# [钛哥]:看map的优雅实现！第一个参数是魔法公式，第二个是被施法的对象
map魔法结果 = list(map(lambda x: x**2, 数字列表))
print("map魔法:", map魔法结果)

# [钛妹]:哇！代码精简了好多！那能同时施加多个魔法吗？
def 乘以自身(x):
    return x * x

def 加上自身(x):
    return x + x

魔法组合 = [乘以自身, 加上自身]

# [钛哥]:看好了！用map把两个魔法同时施加到每个数字上
print("\n双倍魔法效果:")
for 数字 in range(5):
    双重效果 = list(map(lambda 魔法: 魔法(数字), 魔法组合))
    print(f"数字{数字}:", 双重效果)

# [钛妹]:太酷了！那map处理后的对象可以直接用吗？
map迭代器 = map(lambda x: x*10, 数字列表)
print("\n迭代器直接访问:", next(map迭代器))
print("第二次访问:", next(map迭代器))
print("转换成列表:", list(map迭代器))

# [钛妹]:如果访问超出会怎样？会爆炸吗？
try:
    print(next(map迭代器))  # 尝试访问不存在的元素
except StopIteration:
    print("警报！迭代器已经耗尽啦～")

# [钛哥]:实战演示：批量处理用户输入转换
用户输入 = ["18", "22", "35"]
print("\n年龄验证结果:", list(map(int, 用户输入)))

# [钛哥]:记住map三大绝招：
# 1. 代码简洁如魔法 2. 支持多函数组合拳 3. 惰性计算省内存
# [钛妹]:明白啦！map就像流水线机器人，自动处理每个元素！

print("\n人脑的创造力是机器无法匹敌的！每天进步一点点！点赞关注不迷路！")